Show the code!
pacman::p_load(sf, sfdep, readxl, plyr, kableExtra, tmap, Kendall, tidyverse)Valencia
February 13, 2023
February 21, 2023
Since late December 2019, an outbreak of a novel coronavirus disease (COVID-19; previously known as 2019-nCoV) was reported in Wuhan, China, which had subsequently affected 210 countries worldwide. In general, COVID-19 is an acute resolved disease but it can also be deadly, with a 2% case fatality rate.
The COVID-19 vaccination in Indonesia is an ongoing mass immunisation in response to the COVID-19 pandemic in Indonesia. On 13 January 2021, the program commenced when President Joko Widodo was vaccinated at the presidential palace. In terms of total doses given, Indonesia ranks third in Asia and fifth in the world.
According to wikipedia, as of 5 February 2023 at 18:00 WIB (UTC+7), 204,266,655 people had received the first dose of the vaccine and 175,131,893 people had been fully vaccinated; 69,597,474 of them had been inoculated with the booster or the third dose, while 1,585,164 had received the fourth dose. Jakarta has the highest percentage of population fully vaccinated with 103.46%, followed by Bali and Special Region of Yogyakarta with 85.45% and 83.02% respectively.
Despite its compactness, the cumulative vaccination rate are not evenly distributed within DKI Jakarta. The question is where are the sub-districts with relatively higher number of vaccination rate and how they changed over time.
Exploratory Spatial Data Analysis (ESDA) hold tremendous potential to address complex problems facing society. In this study, you are tasked to apply appropriate Local Indicators of Spatial Association (LISA) and Emerging Hot Spot Analysis (EHSA) to undercover the spatio-temporal trends of COVID-19 vaccination in DKI Jakarta.
For the purpose of this assignment, data from Riwayat File Vaksinasi DKI Jakarta will be used. Daily vaccination data are provides. You are only required to download either the first day of the month or last day of the month of the study period.
For the purpose of this study, DKI Jakarta administration boundary 2019 will be used. The data set can be downloaded at Indonesia Geospatial portal, specifically at this page.
Reading layer `BATAS_DESA_DESEMBER_2019_DUKCAPIL_DKI_JAKARTA' from data source
`C:\valtyl\IS415-GAA\Take-home_Ex\Take-home_Ex02\data\geospatial'
using driver `ESRI Shapefile'
Simple feature collection with 269 features and 161 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: 106.3831 ymin: -6.370815 xmax: 106.9728 ymax: -5.184322
Geodetic CRS: WGS 84
From the output message, we learn that: - Geometry type: Multipolygon - 269 features, 161 fields - Assigned CRS is WGS 84, ‘World Geodetic System 1984’ (This is not appropriate as this geospatial dataset is Indonesian-specific hence we will have to use the national CRS of Indonesia, DGN 95, ‘Datum Geodesi Nasional 1995’. We will change this later on.) (Refer to note in section 3.2)
Before visualising our data, we need to check if there are: - invalid geometries - or missing values These can impact future calculations and representations
Checking for invalid geometries:
# function breakdown:
# the st_is_valid function checks whether a geometry is valid
# which returns the indices of certain values based on logical conditions
# length returns the length of data objects
# checks for the number of geometries that are NOT valid
length(which(st_is_valid(bd_jakarta) == FALSE))[1] 0
The message output shows that there are no invalid geometries.
Simple feature collection with 2 features and 161 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: 106.8412 ymin: -6.154036 xmax: 106.8612 ymax: -6.144973
Geodetic CRS: WGS 84
OBJECT_ID KODE_DESA DESA KODE PROVINSI KAB_KOTA KECAMATAN
243 25645 31888888 DANAU SUNTER 318888 DKI JAKARTA <NA> <NA>
244 25646 31888888 DANAU SUNTER DLL 318888 DKI JAKARTA <NA> <NA>
DESA_KELUR JUMLAH_PEN JUMLAH_KK LUAS_WILAY KEPADATAN PERPINDAHA JUMLAH_MEN
243 <NA> 0 0 0 0 0 0
244 <NA> 0 0 0 0 0 0
PERUBAHAN WAJIB_KTP SILAM KRISTEN KHATOLIK HINDU BUDHA KONGHUCU KEPERCAYAA
243 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0
PRIA WANITA BELUM_KAWI KAWIN CERAI_HIDU CERAI_MATI U0 U5 U10 U15 U20 U25
243 0 0 0 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0 0 0 0
U30 U35 U40 U45 U50 U55 U60 U65 U70 U75 TIDAK_BELU BELUM_TAMA TAMAT_SD SLTP
243 0 0 0 0 0 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0 0 0 0 0 0
SLTA DIPLOMA_I DIPLOMA_II DIPLOMA_IV STRATA_II STRATA_III BELUM_TIDA
243 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0
APARATUR_P TENAGA_PEN WIRASWASTA PERTANIAN NELAYAN AGAMA_DAN PELAJAR_MA
243 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0
TENAGA_KES PENSIUNAN LAINNYA GENERATED KODE_DES_1 BELUM_ MENGUR_ PELAJAR_
243 0 0 0 <NA> <NA> 0 0 0
244 0 0 0 <NA> <NA> 0 0 0
PENSIUNA_1 PEGAWAI_ TENTARA KEPOLISIAN PERDAG_ PETANI PETERN_ NELAYAN_1
243 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0
INDUSTR_ KONSTR_ TRANSP_ KARYAW_ KARYAW1 KARYAW1_1 KARYAW1_12 BURUH BURUH_
243 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0
BURUH1 BURUH1_1 PEMBANT_ TUKANG TUKANG_1 TUKANG_12 TUKANG__13 TUKANG__14
243 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0
TUKANG__15 TUKANG__16 TUKANG__17 PENATA PENATA_ PENATA1_1 MEKANIK SENIMAN_
243 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0
TABIB PARAJI_ PERANCA_ PENTER_ IMAM_M PENDETA PASTOR WARTAWAN USTADZ JURU_M
243 0 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0 0
PROMOT ANGGOTA_ ANGGOTA1 ANGGOTA1_1 PRESIDEN WAKIL_PRES ANGGOTA1_2
243 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0
ANGGOTA1_3 DUTA_B GUBERNUR WAKIL_GUBE BUPATI WAKIL_BUPA WALIKOTA WAKIL_WALI
243 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0
ANGGOTA1_4 ANGGOTA1_5 DOSEN GURU PILOT PENGACARA_ NOTARIS ARSITEK AKUNTA_
243 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0
KONSUL_ DOKTER BIDAN PERAWAT APOTEK_ PSIKIATER PENYIA_ PENYIA1 PELAUT
243 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0
PENELITI SOPIR PIALAN PARANORMAL PEDAGA_ PERANG_ KEPALA_ BIARAW_ WIRASWAST_
243 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0
LAINNYA_12 LUAS_DESA KODE_DES_3 DESA_KEL_1 KODE_12
243 0 0 <NA> <NA> 0
244 0 0 <NA> <NA> 0
geometry
243 MULTIPOLYGON (((106.8612 -6...
244 MULTIPOLYGON (((106.8504 -6...
The message output shows that there are 2 rows with missing values for the columns KAB_KOTA (City), KECAMATAN (District), DESA_KELUR (Village) and a few more others. We can also see that there are way too many columns, and we will remove the unnecessary columns later on.
To clean up, we will remove the rows that have NA values in DESA_KELUR since we are interested in the dataset on a sub-district level:
Checking the CRS of bd_jakarta:
Coordinate Reference System:
User input: WGS 84
wkt:
GEOGCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["latitude",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["longitude",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4326]]
As mentioned in section 4.2.1, WGS 84 is not appropriate and we should change it to DGN 95:
Checking if the CRS has been properly assigned:
Coordinate Reference System:
User input: EPSG:23845
wkt:
PROJCRS["DGN95 / Indonesia TM-3 zone 54.1",
BASEGEOGCRS["DGN95",
DATUM["Datum Geodesi Nasional 1995",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4755]],
CONVERSION["Indonesia TM-3 zone 54.1",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
PARAMETER["Latitude of natural origin",0,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8801]],
PARAMETER["Longitude of natural origin",139.5,
ANGLEUNIT["degree",0.0174532925199433],
ID["EPSG",8802]],
PARAMETER["Scale factor at natural origin",0.9999,
SCALEUNIT["unity",1],
ID["EPSG",8805]],
PARAMETER["False easting",200000,
LENGTHUNIT["metre",1],
ID["EPSG",8806]],
PARAMETER["False northing",1500000,
LENGTHUNIT["metre",1],
ID["EPSG",8807]]],
CS[Cartesian,2],
AXIS["easting (X)",east,
ORDER[1],
LENGTHUNIT["metre",1]],
AXIS["northing (Y)",north,
ORDER[2],
LENGTHUNIT["metre",1]],
USAGE[
SCOPE["Cadastre."],
AREA["Indonesia - onshore east of 138°E."],
BBOX[-9.19,138,-1.49,141.01]],
ID["EPSG",23845]]
The transformation is done.
First, we will visualise the geometry of Jakarta:
From the output, it shows that bd_jakarta includes the main land but also many other outer islands that we are not relevant to our analysis in this assignment. (Refer to note in section 3.2)
To remove the outer islands, we should look at how unique values at the City level, KAB_KOTA:
[1] "JAKARTA BARAT" "JAKARTA PUSAT" "KEPULAUAN SERIBU" "JAKARTA UTARA"
[5] "JAKARTA TIMUR" "JAKARTA SELATAN"
From the output, the cities within Jakarta have a JAKARTA prefix, while KEPULAUAN SERIBU (which means ‘Thousand Islands’) refers to the outer islands. Visualising KAB_KOTA will confirm this:

The above visualisation proves that KEPULAUAN SERIBU are the outer islands to remove:
As seen in section 4.2.2.2, there were many unnecessary and irrelevant columns that we could remove. (Refer to note in section 3.2)
Retaining the relevant fields (first 9 fields) to our analysis:
For ease of comprehension:
# with reference to: https://www.codegrepper.com/code-examples/r/rename+column+name+in+r
# renames the columns in the style New_Name = OLD_NAME
bd_jakarta <- bd_jakarta %>%
dplyr::rename(
Object_ID=OBJECT_ID,
Province=PROVINSI,
City=KAB_KOTA,
District=KECAMATAN,
Village_Code=KODE_DESA,
Village=DESA,
Sub_District=DESA_KELUR,
Code=KODE,
Total_Population=JUMLAH_PEN
)Summary of bd_jakarta:
Rows: 261
Columns: 10
$ Object_ID <dbl> 25477, 25478, 25397, 25400, 25390, 25391, 25394, 2538…
$ Village_Code <chr> "3173031006", "3173031007", "3171031003", "3171031006…
$ Village <chr> "KEAGUNGAN", "GLODOK", "HARAPAN MULIA", "CEMPAKA BARU…
$ Code <dbl> 317303, 317303, 317103, 317103, 317102, 317102, 31710…
$ Province <chr> "DKI JAKARTA", "DKI JAKARTA", "DKI JAKARTA", "DKI JAK…
$ City <chr> "JAKARTA BARAT", "JAKARTA BARAT", "JAKARTA PUSAT", "J…
$ District <chr> "TAMAN SARI", "TAMAN SARI", "KEMAYORAN", "KEMAYORAN",…
$ Sub_District <chr> "KEAGUNGAN", "GLODOK", "HARAPAN MULIA", "CEMPAKA BARU…
$ Total_Population <dbl> 21609, 9069, 29085, 41913, 15793, 33383, 35906, 21828…
$ geometry <MULTIPOLYGON [m]> MULTIPOLYGON (((-3626874 69..., MULTIPOL…
Number of unique sub-districts:
Number of unique districts:
Number of unique cities:
There are 261 unique sub-districts, 42 unique districts and 5 unique cities. The maximum number of categories for mapping with tmap is 30. Even though max.categories can be adjusted in tmap_options, too many segmented sections on a single map will not provide much insights hence we should do the EDA at ‘City’ level:
For the aspatial data, I have decided to download the data for last day of every month from July 2021 to June 2022. However, the last day of Feb 2022 provided on the website in section 3.1 is 27 Feb instead of 28 Feb.
This section is to check for any discrepancies in each .xlsx file in the ‘data/aspatial’ folder by performing EDA:
Rows: 268
Columns: 27
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 4441501, 12333, 13875, 18…
$ `JUMLAH\r\nDOSIS 1` <dbl> 4499710, 11614, 15506, 10…
$ `JUMLAH\r\nDOSIS 2` <dbl> 1663218, 4181, 4798, 3658…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 6162928, 15795, 20304, 14…
$ `LANSIA\r\nDOSIS 1` <dbl> 502579, 1230, 2012, 865, …
$ `LANSIA\r\nDOSIS 2` <dbl> 440910, 1069, 1729, 701, …
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 943489, 2299, 3741, 1566,…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1052883, 3333, 2586, 2837…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 666009, 2158, 1374, 1761,…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1718892, 5491, 3960, 4598…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 56660, 78, 122, 174, 71, …
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 38496, 51, 84, 106, 57, 7…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 95156, 129, 206, 280, 128…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 76397, 101, 90, 215, 73, …
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 67484, 91, 82, 192, 67, 3…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 143881, 192, 172, 407, 14…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 2279398, 5506, 9012, 5408…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 446028, 789, 1519, 897, 4…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 2725426, 6295, 10531, 630…
$ `REMAJA\r\nDOSIS 1` <dbl> 531793, 1366, 1684, 1261,…
$ `REMAJA\r\nDOSIS 2` <dbl> 4291, 23, 10, 1, 1, 8, 6,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 536084, 1389, 1694, 1262,…
The above output shows that there are no duplicates for the columns.
Below, similar codes were used to check for the other excel files. There are no duplicates in the rest of the files. But, the excel files for July 2021 to February 2022 have 27 columns while those for March 2022 to June 2022 have 34 columns.
Rows: 268
Columns: 27
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 3277484, 9191, 10400, 125…
$ `JUMLAH\r\nDOSIS 1` <dbl> 5663727, 14756, 18981, 16…
$ `JUMLAH\r\nDOSIS 2` <dbl> 3412906, 8935, 10470, 776…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 9076633, 23691, 29451, 24…
$ `LANSIA\r\nDOSIS 1` <dbl> 535001, 1300, 2104, 1043,…
$ `LANSIA\r\nDOSIS 2` <dbl> 468678, 1140, 1849, 780, …
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1003679, 2440, 3953, 1823…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1393352, 4194, 3643, 4293…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1007921, 3135, 2519, 2548…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 2401273, 7329, 6162, 6841…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 65340, 89, 137, 188, 80, …
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 53995, 77, 119, 163, 71, …
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 119335, 166, 256, 351, 15…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 79502, 106, 92, 229, 78, …
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 72588, 96, 83, 203, 74, 3…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 152090, 202, 175, 432, 15…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 2941837, 7385, 11033, 872…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 1377349, 3277, 4541, 3010…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 4319186, 10662, 15574, 11…
$ `REMAJA\r\nDOSIS 1` <dbl> 648695, 1682, 1972, 2090,…
$ `REMAJA\r\nDOSIS 2` <dbl> 432375, 1210, 1359, 1062,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1081070, 2892, 3331, 3152…
Rows: 268
Columns: 27
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 2235772, 6688, 7581, 8708…
$ `JUMLAH\r\nDOSIS 1` <dbl> 6705439, 17259, 21800, 20…
$ `JUMLAH\r\nDOSIS 2` <dbl> 5171697, 13376, 16438, 14…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 11877136, 30635, 38238, 3…
$ `LANSIA\r\nDOSIS 1` <dbl> 587215, 1417, 2270, 1263,…
$ `LANSIA\r\nDOSIS 2` <dbl> 518944, 1263, 2033, 988, …
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1106159, 2680, 4303, 2251…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1468382, 3938, 3883, 4540…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1305200, 3454, 3356, 3903…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 2773582, 7392, 7239, 8443…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 84049, 158, 173, 248, 100…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 75657, 148, 157, 229, 91,…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 159706, 306, 330, 477, 19…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 112296, 140, 135, 329, 11…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 104381, 124, 125, 300, 11…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 216677, 264, 260, 629, 23…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 3677943, 9564, 12969, 114…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 2548057, 6788, 8944, 7023…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 6226000, 16352, 21913, 18…
$ `REMAJA\r\nDOSIS 1` <dbl> 775554, 2042, 2370, 2510,…
$ `REMAJA\r\nDOSIS 2` <dbl> 619458, 1599, 1823, 1969,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1395012, 3641, 4193, 4479…
Rows: 268
Columns: 27
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1880524, 5991, 6557, 7586…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7060687, 17956, 22824, 21…
$ `JUMLAH\r\nDOSIS 2` <dbl> 5729001, 14504, 18185, 16…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 12789688, 32460, 41009, 3…
$ `LANSIA\r\nDOSIS 1` <dbl> 608940, 1447, 2336, 1322,…
$ `LANSIA\r\nDOSIS 2` <dbl> 543483, 1296, 2104, 1104,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1152423, 2743, 4440, 2426…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1484292, 3972, 3917, 4595…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1349105, 3555, 3465, 4072…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 2833397, 7527, 7382, 8667…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 86323, 165, 175, 259, 101…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 81721, 160, 168, 245, 96,…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 168044, 325, 343, 504, 19…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 113911, 140, 136, 338, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 107383, 128, 128, 310, 12…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 221294, 268, 264, 648, 24…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 3948804, 10101, 13744, 12…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 2949023, 7567, 10266, 849…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 6897827, 17668, 24010, 20…
$ `REMAJA\r\nDOSIS 1` <dbl> 818417, 2131, 2516, 2672,…
$ `REMAJA\r\nDOSIS 2` <dbl> 698286, 1798, 2054, 2220,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1516703, 3929, 4570, 4892…
Rows: 268
Columns: 27
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1723821, 5527, 5986, 6802…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7217390, 18420, 23395, 22…
$ `JUMLAH\r\nDOSIS 2` <dbl> 6172636, 15466, 19404, 18…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 13390026, 33886, 42799, 4…
$ `LANSIA\r\nDOSIS 1` <dbl> 624751, 1473, 2391, 1385,…
$ `LANSIA\r\nDOSIS 2` <dbl> 571830, 1351, 2192, 1224,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1196581, 2824, 4583, 2609…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1487961, 3980, 3926, 4614…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1369705, 3601, 3516, 4146…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 2857666, 7581, 7442, 8760…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 86710, 169, 176, 259, 101…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 83506, 163, 172, 252, 98,…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 170216, 332, 348, 511, 19…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 114292, 140, 135, 341, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 109221, 128, 128, 323, 12…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 223513, 268, 263, 664, 24…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 4069550, 10473, 14182, 12…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 3304266, 8329, 11215, 978…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 7373816, 18802, 25397, 22…
$ `REMAJA\r\nDOSIS 1` <dbl> 834126, 2185, 2585, 2733,…
$ `REMAJA\r\nDOSIS 2` <dbl> 734108, 1894, 2181, 2355,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1568234, 4079, 4766, 5088…
Rows: 268
Columns: 27
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1623736, 5062, 5626, 6335…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7317475, 18885, 23755, 22…
$ `JUMLAH\r\nDOSIS 2` <dbl> 6370175, 15996, 20026, 18…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 13687650, 34881, 43781, 4…
$ `LANSIA\r\nDOSIS 1` <dbl> 634516, 1520, 2427, 1418,…
$ `LANSIA\r\nDOSIS 2` <dbl> 586624, 1375, 2247, 1294,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1221140, 2895, 4674, 2712…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1485857, 3981, 3922, 4603…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1372180, 3607, 3521, 4153…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 2858037, 7588, 7443, 8756…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 86905, 169, 176, 260, 101…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 83995, 164, 174, 253, 99,…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 170900, 333, 350, 513, 20…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 114612, 140, 136, 345, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 110119, 128, 129, 327, 12…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 224731, 268, 265, 672, 24…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 4150113, 10841, 14450, 13…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 3467714, 8782, 11715, 104…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 7617827, 19623, 26165, 23…
$ `REMAJA\r\nDOSIS 1` <dbl> 845472, 2234, 2644, 2783,…
$ `REMAJA\r\nDOSIS 2` <dbl> 749543, 1940, 2240, 2401,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1595015, 4174, 4884, 5184…
Rows: 268
Columns: 27
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1538221, 4647, 5388, 5967…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7402990, 19300, 23993, 23…
$ `JUMLAH\r\nDOSIS 2` <dbl> 6516678, 16477, 20463, 19…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 13919668, 35777, 44456, 4…
$ `LANSIA\r\nDOSIS 1` <dbl> 644280, 1564, 2459, 1446,…
$ `LANSIA\r\nDOSIS 2` <dbl> 598309, 1399, 2291, 1327,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1242589, 2963, 4750, 2773…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1478564, 3971, 3900, 4592…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1369268, 3604, 3506, 4158…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 2847832, 7575, 7406, 8750…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 88073, 177, 178, 262, 102…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 85942, 171, 179, 260, 99,…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 174015, 348, 357, 522, 20…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 115123, 140, 135, 348, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 111364, 130, 130, 331, 12…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 226487, 270, 265, 679, 24…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 4215232, 11158, 14620, 13…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 3579348, 9173, 12024, 109…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 7794580, 20331, 26644, 24…
$ `REMAJA\r\nDOSIS 1` <dbl> 861718, 2290, 2701, 2840,…
$ `REMAJA\r\nDOSIS 2` <dbl> 772447, 2000, 2333, 2488,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1634165, 4290, 5034, 5328…
Rows: 268
Columns: 27
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1517196, 4592, 5319, 5903…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7424015, 19355, 24062, 23…
$ `JUMLAH\r\nDOSIS 2` <dbl> 6590380, 16687, 20738, 19…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 14014395, 36042, 44800, 4…
$ `LANSIA\r\nDOSIS 1` <dbl> 646481, 1567, 2465, 1451,…
$ `LANSIA\r\nDOSIS 2` <dbl> 604751, 1418, 2336, 1348,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1251232, 2985, 4801, 2799…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1478545, 3971, 3899, 4590…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1371190, 3614, 3512, 4161…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 2849735, 7585, 7411, 8751…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 88088, 178, 178, 262, 102…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 86046, 171, 179, 260, 99,…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 174134, 349, 357, 522, 20…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 115186, 140, 135, 348, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 111623, 130, 130, 331, 12…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 226809, 270, 265, 679, 24…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 4232389, 11200, 14670, 13…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 3638187, 9327, 12227, 111…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 7870576, 20527, 26897, 24…
$ `REMAJA\r\nDOSIS 1` <dbl> 863326, 2299, 2715, 2845,…
$ `REMAJA\r\nDOSIS 2` <dbl> 778583, 2027, 2354, 2512,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1641909, 4326, 5069, 5357…
Rows: 268
Columns: 34
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1482471, 4522, 5186, 5780…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7458740, 19425, 24195, 23…
$ `JUMLAH\r\nDOSIS 2` <dbl> 6682911, 16909, 21000, 20…
$ `JUMLAH\r\nDOSIS 3` <dbl> 1836511, 3934, 6122, 4124…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 15978162, 40268, 51317, 4…
$ `LANSIA\r\nDOSIS 1` <dbl> 649601, 1574, 2475, 1457,…
$ `LANSIA\r\nDOSIS 2` <dbl> 610754, 1433, 2350, 1366,…
$ `LANSIA\r\nDOSIS 3` <dbl> 610754, 1433, 2350, 1366,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1533150, 3545, 6052, 3283…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1481237, 3980, 3910, 4604…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1375686, 3634, 3523, 4175…
$ `PELAYAN PUBLIK\r\nDOSIS 3` <dbl> 200536, 579, 660, 453, 24…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 3057459, 8193, 8093, 9232…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 88150, 178, 178, 262, 102…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 86122, 173, 179, 260, 99,…
$ `GOTONG ROYONG\r\nDOSIS 3` <dbl> 19460, 22, 53, 57, 19, 41…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 193732, 373, 410, 579, 22…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 115527, 140, 135, 348, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 112027, 130, 130, 331, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 3` <dbl> 84640, 103, 94, 239, 83, …
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 312194, 373, 359, 918, 32…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 4258776, 11250, 14773, 13…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 3715052, 9502, 12436, 114…
$ `TAHAPAN 3\r\nDOSIS 3` <dbl> 1248211, 2671, 4048, 2891…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 9222039, 23423, 31257, 28…
$ `REMAJA\r\nDOSIS 1` <dbl> 865449, 2303, 2724, 2851,…
$ `REMAJA\r\nDOSIS 2` <dbl> 783270, 2037, 2382, 2541,…
$ `REMAJA\r\nDOSIS 3` <dbl> 10869, 21, 40, 24, 7, 28,…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1659588, 4361, 5146, 5416…
Rows: 268
Columns: 34
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1453423, 4449, 5101, 5699…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7487788, 19498, 24280, 23…
$ `JUMLAH\r\nDOSIS 2` <dbl> 6727002, 17027, 21134, 20…
$ `JUMLAH\r\nDOSIS 3` <dbl> 2720796, 6568, 8915, 6491…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 16935586, 43093, 54329, 5…
$ `LANSIA\r\nDOSIS 1` <dbl> 651696, 1579, 2481, 1458,…
$ `LANSIA\r\nDOSIS 2` <dbl> 613044, 1441, 2360, 1376,…
$ `LANSIA\r\nDOSIS 3` <dbl> 613044, 1441, 2360, 1376,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1599248, 3750, 6301, 3425…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1483630, 3983, 3920, 4611…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1378338, 3640, 3529, 4187…
$ `PELAYAN PUBLIK\r\nDOSIS 3` <dbl> 366145, 1099, 1096, 941, …
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 3228113, 8722, 8545, 9739…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 88200, 178, 178, 262, 102…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 86184, 173, 179, 260, 99,…
$ `GOTONG ROYONG\r\nDOSIS 3` <dbl> 38179, 71, 95, 120, 41, 7…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 212563, 422, 452, 642, 24…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 115623, 140, 135, 348, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 112253, 130, 130, 333, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 3` <dbl> 89811, 109, 105, 259, 91,…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 317687, 379, 370, 940, 33…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 4281576, 11308, 14842, 13…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 3750893, 9596, 12545, 116…
$ `TAHAPAN 3\r\nDOSIS 3` <dbl> 1866526, 4503, 6084, 4519…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 9898995, 25407, 33471, 29…
$ `REMAJA\r\nDOSIS 1` <dbl> 867063, 2310, 2724, 2858,…
$ `REMAJA\r\nDOSIS 2` <dbl> 786290, 2047, 2391, 2557,…
$ `REMAJA\r\nDOSIS 3` <dbl> 25627, 56, 75, 61, 19, 71…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1678980, 4413, 5190, 5476…
Rows: 268
Columns: 34
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1445540, 4440, 5084, 5676…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7495671, 19507, 24297, 23…
$ `JUMLAH\r\nDOSIS 2` <dbl> 6743764, 17077, 21182, 20…
$ `JUMLAH\r\nDOSIS 3` <dbl> 2885301, 7022, 9484, 7030…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 17124736, 43606, 54963, 5…
$ `LANSIA\r\nDOSIS 1` <dbl> 652411, 1580, 2482, 1461,…
$ `LANSIA\r\nDOSIS 2` <dbl> 614259, 1442, 2367, 1378,…
$ `LANSIA\r\nDOSIS 3` <dbl> 614259, 1442, 2367, 1378,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1615382, 3804, 6385, 3468…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1483896, 3982, 3920, 4612…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1379577, 3645, 3534, 4192…
$ `PELAYAN PUBLIK\r\nDOSIS 3` <dbl> 395504, 1185, 1185, 1033,…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 3258977, 8812, 8639, 9837…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 88234, 179, 178, 262, 102…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 86232, 173, 179, 260, 99,…
$ `GOTONG ROYONG\r\nDOSIS 3` <dbl> 43402, 100, 111, 132, 53,…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 217868, 452, 468, 654, 25…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 115658, 140, 135, 348, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 112327, 130, 131, 333, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 3` <dbl> 91061, 110, 108, 262, 93,…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 319046, 380, 374, 943, 33…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 4287820, 11318, 14850, 13…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 3763773, 9632, 12577, 116…
$ `TAHAPAN 3\r\nDOSIS 3` <dbl> 1975879, 4777, 6455, 4893…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 10027472, 25727, 33882, 3…
$ `REMAJA\r\nDOSIS 1` <dbl> 867652, 2308, 2732, 2858,…
$ `REMAJA\r\nDOSIS 2` <dbl> 787596, 2055, 2394, 2562,…
$ `REMAJA\r\nDOSIS 3` <dbl> 30743, 68, 89, 81, 26, 80…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1685991, 4431, 5215, 5501…
Rows: 268
Columns: 34
$ `KODE KELURAHAN` <chr> NA, "3172051003", "317304…
$ `WILAYAH KOTA` <chr> NA, "JAKARTA UTARA", "JAK…
$ KECAMATAN <chr> NA, "PADEMANGAN", "TAMBOR…
$ KELURAHAN <chr> "TOTAL", "ANCOL", "ANGKE"…
$ SASARAN <dbl> 8941211, 23947, 29381, 29…
$ `BELUM VAKSIN` <dbl> 1431393, 4402, 5041, 5632…
$ `JUMLAH\r\nDOSIS 1` <dbl> 7509818, 19545, 24340, 23…
$ `JUMLAH\r\nDOSIS 2` <dbl> 6756584, 17106, 21213, 20…
$ `JUMLAH\r\nDOSIS 3` <dbl> 3031594, 7369, 10086, 739…
$ `TOTAL VAKSIN\r\nDIBERIKAN` <dbl> 17297996, 44020, 55639, 5…
$ `LANSIA\r\nDOSIS 1` <dbl> 653401, 1582, 2483, 1466,…
$ `LANSIA\r\nDOSIS 2` <dbl> 615341, 1447, 2368, 1382,…
$ `LANSIA\r\nDOSIS 3` <dbl> 615341, 1447, 2368, 1382,…
$ `LANSIA TOTAL \r\nVAKSIN DIBERIKAN` <dbl> 1630553, 3848, 6464, 3495…
$ `PELAYAN PUBLIK\r\nDOSIS 1` <dbl> 1484892, 3982, 3924, 4613…
$ `PELAYAN PUBLIK\r\nDOSIS 2` <dbl> 1380501, 3646, 3536, 4195…
$ `PELAYAN PUBLIK\r\nDOSIS 3` <dbl> 420795, 1244, 1265, 1104,…
$ `PELAYAN PUBLIK TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 3286188, 8872, 8725, 9912…
$ `GOTONG ROYONG\r\nDOSIS 1` <dbl> 88277, 180, 178, 262, 102…
$ `GOTONG ROYONG\r\nDOSIS 2` <dbl> 86277, 174, 179, 260, 99,…
$ `GOTONG ROYONG\r\nDOSIS 3` <dbl> 45143, 104, 115, 135, 56,…
$ `GOTONG ROYONG TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 219697, 458, 472, 657, 25…
$ `TENAGA KESEHATAN\r\nDOSIS 1` <dbl> 115697, 140, 135, 348, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 2` <dbl> 112383, 130, 131, 333, 12…
$ `TENAGA KESEHATAN\r\nDOSIS 3` <dbl> 91999, 113, 108, 266, 95,…
$ `TENAGA KESEHATAN TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 320079, 383, 374, 947, 33…
$ `TAHAPAN 3\r\nDOSIS 1` <dbl> 4298906, 11352, 14884, 13…
$ `TAHAPAN 3\r\nDOSIS 2` <dbl> 3773713, 9652, 12601, 116…
$ `TAHAPAN 3\r\nDOSIS 3` <dbl> 2075349, 5009, 6872, 5151…
$ `TAHAPAN 3 TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 10147968, 26013, 34357, 3…
$ `REMAJA\r\nDOSIS 1` <dbl> 868645, 2309, 2736, 2862,…
$ `REMAJA\r\nDOSIS 2` <dbl> 788369, 2057, 2398, 2564,…
$ `REMAJA\r\nDOSIS 3` <dbl> 36497, 80, 113, 95, 29, 1…
$ `REMAJA TOTAL\r\nVAKSIN DIBERIKAN` <dbl> 1693511, 4446, 5247, 5521…
Firstly, here are some requirements for our aspatial data:
Columns of interest:
We need to create an extra Date column that has the month and year of the observation. Note that the files have a naming convention “Data Vaksinasi Berbasis Kelurahan (DD Month YYYY).xlsx”
# takes in an aspatial data filepath and returns a processed output
aspatial_preprocess <- function(filepath){
# we use [-1,] to remove the first row of the file as the first row is a subheader row
result_file <- read_xlsx(filepath)[-1,]
# Create the Date Column
# the format of our files is: Data Vaksinasi Berbasis Kelurahan (DD Month YYYY)
# while the start is technically "(", "(" is part of a regular expression and leads to a warning message, so we'll use "Kelurahan" instead. The [[1]] refers to the first element in the list.
# we're loading it as DD-Month-YYYY format
# to get the end index, we use the length of the filepath - 6
# as such, the most relevant functions are substr (returns a substring) and either str_locate (returns location of substring as an integer matrix) or gregexpr (returns a list of locations of substring)
# reference https://stackoverflow.com/questions/14249562/find-the-location-of-a-character-in-string
startpoint <- gregexpr(pattern="Kelurahan", filepath)[[1]] + 11
result_file$Date <- substr(filepath, startpoint, nchar(filepath)-6)
# Retain the Relevant Columns
result_file <- result_file %>%
select("Date",
"KODE KELURAHAN",
"KELURAHAN",
"SASARAN",
"BELUM VAKSIN",
"TOTAL VAKSIN\r\nDIBERIKAN")
return(result_file)
}Feeding Files into the aspatial_preprocess function using list.files() and lapply() to apply a function to all elements in the list:
# in the folder 'data/aspatial', find files with the extension '.xlsx' and add it to our fileslist
# the full.names=TRUE prepends the directory path to the file names, giving a relative file path - otherwise, only the file names (not the paths) would be returned
# reference: https://stat.ethz.ch/R-manual/R-devel/library/base/html/list.files.html
fileslist <-list.files(path = "data/aspatial", pattern = "*.xlsx", full.names=TRUE)
# afterwards, for every element in fileslist, apply aspatial_process function
dflist <- lapply(seq_along(fileslist), function(x) aspatial_preprocess(fileslist[x]))Converting the dflist into an actual dataframe using ldply():
Checking vacc_jakarta:
Rows: 3,204
Columns: 6
$ Date <chr> "27 Februari 2022", "27 Februari 2022", "27 Fe…
$ KODE.KELURAHAN <chr> "3172051003", "3173041007", "3175041005", "317…
$ KELURAHAN <chr> "ANCOL", "ANGKE", "BALE KAMBANG", "BALI MESTER…
$ SASARAN <dbl> 23947, 29381, 29074, 9752, 26285, 21566, 23886…
$ BELUM.VAKSIN <dbl> 4592, 5319, 5903, 1649, 4030, 3950, 3344, 9382…
$ TOTAL.VAKSIN..DIBERIKAN <dbl> 36042, 44800, 42925, 15348, 42415, 33278, 3929…
The Dates are currently in string format as there were derived from the file names, hence we need to convert the Dates into datetime format.
[1] "LC_COLLATE=Indonesian_Indonesia.1252;LC_CTYPE=Indonesian_Indonesia.1252;LC_MONETARY=Indonesian_Indonesia.1252;LC_NUMERIC=C;LC_TIME=Indonesian_Indonesia.1252"
Converting to datetime format:
Rows: 3,204
Columns: 6
$ Date <date> 2022-02-27, 2022-02-27, 2022-02-27, 2022-02-2~
$ KODE.KELURAHAN <chr> "3172051003", "3173041007", "3175041005", "317~
$ KELURAHAN <chr> "ANCOL", "ANGKE", "BALE KAMBANG", "BALI MESTER~
$ SASARAN <dbl> 23947, 29381, 29074, 9752, 26285, 21566, 23886~
$ BELUM.VAKSIN <dbl> 4592, 5319, 5903, 1649, 4030, 3950, 3344, 9382~
$ TOTAL.VAKSIN..DIBERIKAN <dbl> 36042, 44800, 42925, 15348, 42415, 33278, 3929~
Renaming columns to English for ease of comprehension:
After finalising the dataframe, we can proceed with other data processing requirements.
Checking for missing values:
[1] Date Sub_District_Code
[3] Sub_District Target
[5] Not_Yet_Vaccinated Total_Vaccine_Administered
<0 rows> (or 0-length row.names)
From the output, there are no missing values.
We need to join the geospatial and aspatial data frames but we first need to see what they both commonly have.
Check column names of bd_jakarta:
[1] "Object_ID" "Village_Code" "Village" "Code"
[5] "Province" "City" "District" "Sub_District"
[9] "Total_Population" "geometry"
Check column names of vacc_jakarta:
[1] "Date" "Sub_District_Code"
[3] "Sub_District" "Target"
[5] "Not_Yet_Vaccinated" "Total_Vaccine_Administered"
We are able to see that we can join the dataframes with Sub_District and Sub_District_Code:
Visualising combined_jakarta in terms of vaccine administered and total population:
vaccine_administered = tm_shape(combined_jakarta)+
tm_fill("Total_Vaccine_Administered") +
tm_borders(alpha = 0.5) +
tm_layout(main.title="Vaccine Administered Count")
total_population = tm_shape(combined_jakarta)+
tm_fill("Total_Population") +
tm_borders(alpha = 0.5) +
tm_layout(main.title="Total Count")
tmap_arrange(vaccine_administered, total_population)
There are some missing values even though there are no rows with missing values. This could be due to the mismatch in the values due to slightly different namings for the same sub-district when the left join was done.
Checking for unique values of Sub-District in vacc_jakarta but not in bd_jakarta and vice versa:
[1] "BALE KAMBANG" "HALIM PERDANA KUSUMAH" "JATI PULO"
[4] "KAMPUNG TENGAH" "KERENDANG" "KRAMAT JATI"
[7] "PAL MERIAM" "PINANG RANTI" "PULAU HARAPAN"
[10] "PULAU KELAPA" "PULAU PANGGANG" "PULAU PARI"
[13] "PULAU TIDUNG" "PULAU UNTUNG JAWA" "RAWA JATI"
[1] "KRENDANG" "RAWAJATI" "TENGAH"
[4] "BALEKAMBANG" "PINANGRANTI" "JATIPULO"
[7] "PALMERIAM" "KRAMATJATI" "HALIM PERDANA KUSUMA"
Table to view difference in naming:
# initialise a dataframe of our cases vs bd subdistrict spelling
spelling <- data.frame(
Aspatial_Cases=c("BALE KAMBANG", "HALIM PERDANA KUSUMAH", "JATI PULO", "KAMPUNG TENGAH", "KERENDANG", "KRAMAT JATI", "PAL MERIAM", "PINANG RANTI", "RAWA JATI"),
Geospatial_BD=c("BALEKAMBAG", "HALIM PERDANA KUSUMA", "JATIPULO", "TENGAH", "KRENDANG", "KRAMATJATI", "PALMERIAM", "PINANGRANTI", "RAWAJATI")
)
# with dataframe a input, outputs a kable
library(knitr)
library(kableExtra)
kable(spelling, caption="Mismatched Records") %>%
kable_material("hover", latex_options="scale_down")| Aspatial_Cases | Geospatial_BD |
|---|---|
| BALE KAMBANG | BALEKAMBAG |
| HALIM PERDANA KUSUMAH | HALIM PERDANA KUSUMA |
| JATI PULO | JATIPULO |
| KAMPUNG TENGAH | TENGAH |
| KERENDANG | KRENDANG |
| KRAMAT JATI | KRAMATJATI |
| PAL MERIAM | PALMERIAM |
| PINANG RANTI | PINANGRANTI |
| RAWA JATI | RAWAJATI |
Correcting the mismatched sub-district records in bd_jakarta:
# where bd_jakarta is a mismatched value, replace with the correct value
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'BALEKAMBANG'] <- 'BALE KAMBANG'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'HALIM PERDANA KUSUMA'] <- 'HALIM PERDANA KUSUMAH'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'JATIPULO'] <- 'JATI PULO'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'KALI BARU'] <- 'KALIBARU'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'TENGAH'] <- 'KAMPUNG TENGAH'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'KRAMATJATI'] <- 'KRAMAT JATI'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'KRENDANG'] <- 'KERENDANG'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'PALMERIAM'] <- 'PAL MERIAM'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'PINANGRANTI'] <- 'PINANG RANTI'
bd_jakarta$Sub_District[bd_jakarta$Sub_District == 'RAWAJATI'] <- 'RAWA JATI'There are 6 more unique values in vacc_jakarta as those values are data referring to the outer islands looking at the fact that WILAYAH KOTA is not in JAKARTA:

Thus, we need to remove the rows with these outer islands data:
vacc_jakarta <- vacc_jakarta[!(vacc_jakarta$Sub_District=="PULAU HARAPAN" | vacc_jakarta$Sub_District=="PULAU KELAPA" | vacc_jakarta$Sub_District=="PULAU PANGGANG" | vacc_jakarta$Sub_District=="PULAU PARI" | vacc_jakarta$Sub_District=="PULAU TIDUNG" | vacc_jakarta$Sub_District=="PULAU UNTUNG JAWA"), ]Re-checking for rows with NA values in vacc_jakarta:
[1] Date Sub_District_Code
[3] Sub_District Target
[5] Not_Yet_Vaccinated Total_Vaccine_Administered
<0 rows> (or 0-length row.names)
Re-checking for rows with NA values in bd_jakarta:
Simple feature collection with 0 features and 9 fields
Bounding box: xmin: NA ymin: NA xmax: NA ymax: NA
Projected CRS: DGN95 / Indonesia TM-3 zone 54.1
[1] Object_ID Village_Code Village Code
[5] Province City District Sub_District
[9] Total_Population geometry
<0 rows> (or 0-length row.names)
Checking for rows with NA values in combined_jakarta:
Simple feature collection with 0 features and 14 fields
Bounding box: xmin: NA ymin: NA xmax: NA ymax: NA
Projected CRS: DGN95 / Indonesia TM-3 zone 54.1
[1] Object_ID Village_Code
[3] Village Code
[5] Province City
[7] District Sub_District
[9] Total_Population Date
[11] Sub_District_Code Target
[13] Not_Yet_Vaccinated Total_Vaccine_Administered
[15] geometry
<0 rows> (or 0-length row.names)
Visualising combined_jakarta in terms of vaccine administered and total population again:
vaccine_administered = tm_shape(combined_jakarta)+
tm_fill("Total_Vaccine_Administered") +
tm_borders(alpha = 0.5) +
tm_layout(main.title="Updated Vaccine Administered Count")
total_population = tm_shape(combined_jakarta)+
tm_fill("Total_Population") +
tm_borders(alpha = 0.5) +
tm_layout(main.title="Updated Total Count")
tmap_arrange(vaccine_administered, total_population)
We need to compute the monthly vaccination rate: vaccination rate (in %) = (total population - number of people not vaccinated yet) / total population * 100
# grouping based on the sub-district and date
# the cumulative_case_rate is based on the sum of cases over the total population
vacc_rate <- vacc_jakarta %>%
inner_join(bd_jakarta, by=c("Sub_District" = "Sub_District")) %>%
group_by(Sub_District, Date) %>%
dplyr::summarise(`vacc_rate` = ((Total_Population-Not_Yet_Vaccinated)/Total_Population)*100) %>%
#afterwards, pivots the table based on the Dates, using the cumulative case rate as the values
ungroup() %>% pivot_wider(names_from = Date,
values_from = vacc_rate)Show Vaccination Rate:
# A tibble: 261 x 13
Sub_District 2021-~1 2021-~2 2021-~3 2021-~4 2021-~5 2021-~6 2022-~7 2022-~8
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ANCOL 58.7 69.2 77.6 80.0 81.5 83.1 84.5 84.6
2 ANGKE 61.9 71.5 79.2 82.0 83.6 84.6 85.2 85.4
3 BALE KAMBANG 48.2 64.6 75.4 78.6 80.8 82.1 83.1 83.3
4 BALI MESTER 55.8 68.3 78.5 81.8 83.6 84.8 85.7 85.9
5 BAMBU APUS 56.6 70.4 80.3 84.2 85.5 86.2 87.2 87.3
6 BANGKA 60.2 68.2 78.0 81.9 83.5 84.1 84.8 85.0
7 BARU 65.8 73.6 83.3 86.1 87.2 87.8 88.4 88.6
8 BATU AMPAR 51.0 66.2 76.0 79.3 81.3 82.7 83.8 84.1
9 BENDUNGAN HI~ 63.2 70.4 80.7 83.5 84.6 85.3 86.0 86.1
10 BIDARA CINA 51.8 65.6 76.5 79.8 81.3 82.3 83.1 83.3
# ... with 251 more rows, 4 more variables: `2022-03-31` <dbl>,
# `2022-04-30` <dbl>, `2022-05-31` <dbl>, `2022-06-30` <dbl>, and abbreviated
# variable names 1: `2021-07-31`, 2: `2021-08-31`, 3: `2021-09-30`,
# 4: `2021-10-31`, 5: `2021-11-30`, 6: `2021-12-31`, 7: `2022-01-31`,
# 8: `2022-02-27`
Before moving on to mapping, we should convert dataframes into sf objects
Converting combined_jakarta and vacc_rate:
There are different data classifications to choropleth maps like equal intervals, quantile, jenks and standard deviation. I have decided to use Jenks as it minimises variation in each class. It will be able to find suitable class ranges and also group outliers in a class of its own.
As we do not want too many classes, we will use 6 classes as it seems to be the optimum number to view different classes and we will be able to differentiate between the classes without straining our eyes.
Map for Jul 2021:
# using the jenks method, with 6 classes
tmap_mode("plot")
tm_shape(vacc_rate)+
tm_fill("2021-07-31",
n= 6,
style = "jenks",
title = "Vaccination Rate") +
tm_layout(main.title = "Distribution of Vaccination Rate in July 2021",
main.title.position = "center",
main.title.size = 1,
legend.height = 0.5,
legend.width = 0.4,
frame = TRUE) +
tm_borders(alpha = 0.5)
Introducing a helper function to help us plot the maps for all 12 months:
# input: the dataframe and the variable name - in this case, the month
# with style="jenks" for the jenks classification method
jenks_plot <- function(df, varname) {
tm_shape(vacc_rate) +
tm_polygons() +
tm_shape(df) +
tm_fill(varname,
n= 6,
style = "jenks",
title = "Vaccination Rate") +
tm_layout(main.title = varname,
main.title.position = "center",
main.title.size = 1.2,
legend.height = 0.45,
legend.width = 0.35,
frame = TRUE) +
tm_borders(alpha = 0.5)
}Visualising the Jenks Maps for all 12 months:


For each map, they have their own relative vaccination rate as the range for each map differs. Hence, we cannot rely on the colour scale for each map to compare between the months as it would not be fair.
However, we are able to compare each month individually and see that typically for each month, the higher vaccination rates are at the central area and southern area.
Some other analysis can be done like the sub-district with the highest vaccination rate and the sub-district with the lowest vaccination rate for each month:
[1] "HALIM PERDANA KUSUMAH"
[1] "KAMPUNG RAWA"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
[1] "HALIM PERDANA KUSUMAH"
From this, we can tell that the sub-district “HALIM PERDANA KUSMAH” consistently has the highest vaccination rate except for 1 month in Aug 2021.
[1] "BALE KAMBANG"
[1] "BALE KAMBANG"
[1] "KALIBARU"
[1] "KALIBARU"
[1] "KALIBARU"
[1] "KEBON MELATI"
[1] "KALIBARU"
[1] "KEBON MELATI"
[1] "KEBON MELATI"
[1] "KEBON MELATI"
[1] "KEBON MELATI"
[1] "KEBON MELATI"
From this, we can tell that initially the sub-district “BALE KAMBANG” had the lowest vaccination rate from July 2021 to August 2021, but their vaccination rate improved over the months such that “KALIBARU” was identified as the sub-district with the lowest vaccination rate from September 2021 to January 2022 with the exception of December 2021. Then, “KEBON MELATI” became the sub-district with the lowest vaccination rate from December 2021 to June 2022 with the exception of January 2022.
In the above section, each month had their own vaccination rate. To compare with the vaccination rate between months and see the spatio-temporal progression of the vaccination rates, we should set a fixed range.
To do so, we have to customise the breakpoints and following the above section, we will define 6 breakpoints.
First, we require the maximum vaccination rate which would be from the latest month (June 2022):
Now, we can define the 6 breakpoints based on the jenks breaks ranges from the above section:
Creating a helper function for break plot:
break_plot <- function(df, varname) {
tm_shape(vacc_rate) +
tm_polygons() +
tm_shape(df) +
tm_fill(varname,
breaks= breakpoints,
title = "Vaccination Rate") +
tm_layout(main.title = varname,
main.title.position = "center",
main.title.size = 1.2,
legend.height = 0.45,
legend.width = 0.35,
frame = TRUE) +
tm_borders(alpha = 0.5)
}Plotting the custom break plots for each month:



At the start, in July 2021 and August 2021, there is a slightly higher vaccination rate at the Northern area compared to the other areas given its slightly darker shade of yellow.
However as time passes, from September 2021 to October 2021, the increase in the vaccination rate becomes more evenly spread and there is not much obvious difference other than a few sub-districts here and there.
Specifically sub-district “HALIM PERDANA KUSUMAH” is obvious to the eye with its consistently high rate and darker shade.
From November 2021 to February 2022, the increase in vaccination rate is faster at the Southern area and the Northern Central Area then sub-districts at the Northern border start to catch up.
(Supplementing the previous observations in section 4.5.2, the general increasing trend happens at the Southern and Central area.)
From March 2022 to June 2022, we can see the sub-districts at the Northern border as well as some sub-districts in the central area increasing their vaccination rates.
HCSA <- wm_q %>%
mutate(local_Gi = local_gstar_perm(
((Total_Population-Not_Yet_Vaccinated)/Total_Population*100), nb, wt, nsim=99),
.before=1) %>%
unnest(local_Gi)
HCSASimple feature collection with 3132 features and 24 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: -3644275 ymin: 663887.8 xmax: -3606237 ymax: 701380.1
Projected CRS: DGN95 / Indonesia TM-3 zone 54.1
# A tibble: 3,132 x 25
gi_star e_gi var_gi p_value p_sim p_folde~1 skewn~2 kurto~3 nb wt
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <nb> <lis>
1 1.64 0.000320 1.32e-11 0.100 0.04 0.02 -0.487 -0.400 <int> <dbl>
2 1.61 0.000319 1.48e-11 0.108 0.14 0.07 -0.157 -0.307 <int> <dbl>
3 1.64 0.000319 1.64e-11 0.101 0.06 0.03 -0.559 0.550 <int> <dbl>
4 1.71 0.000319 1.49e-11 0.0870 0.06 0.03 -0.359 -0.530 <int> <dbl>
5 1.82 0.000319 1.10e-11 0.0681 0.1 0.05 -0.0267 -0.351 <int> <dbl>
6 1.72 0.000319 1.39e-11 0.0854 0.08 0.04 -0.264 0.0711 <int> <dbl>
7 1.68 0.000319 1.64e-11 0.0928 0.1 0.05 -0.273 -0.433 <int> <dbl>
8 1.53 0.000319 1.56e-11 0.127 0.14 0.07 -0.300 0.112 <int> <dbl>
9 1.52 0.000319 1.58e-11 0.129 0.16 0.08 0.0236 -0.195 <int> <dbl>
10 1.65 0.000319 1.45e-11 0.0990 0.1 0.05 -0.0688 -0.652 <int> <dbl>
# ... with 3,122 more rows, 15 more variables: Object_ID <dbl>,
# Village_Code <chr>, Village <chr>, Code <dbl>, Province <chr>, City <chr>,
# District <chr>, Sub_District <chr>, Total_Population <dbl>, Date <date>,
# Sub_District_Code <chr>, Target <dbl>, Not_Yet_Vaccinated <dbl>,
# Total_Vaccine_Administered <dbl>, geometry <MULTIPOLYGON [m]>, and
# abbreviated variable names 1: p_folded_sim, 2: skewness, 3: kurtosis
Visualising Gi*: